// 90 年代末 浏览器简单的页面 js发现 -> es5(jquery)  -> es6(现代js react, babel)
// promise -> es7 async await
// async await  es7 提供
// 之前 有异步同步化方案 回调 地狱
// primise 是es6 提供的异步同步化方案 then()
// es7 还要提供新的方案 then 有不完美的地方?

function f1(cb){
    console.log('f1--');
    setTimeout(function(){
        cb();
    },1000)
}

function f2(cb){
    console.log('f2--');
    setTimeout(function(){
        cb();
    },2000)
}

function f3(cb){
    console.log('f3--');
    setTimeout(function(){
        cb();
    },2000)
}

function f4(cb){
    console.log('f4--');
}

// 回调地狱 异步任务队列(长) 保证顺序
// 可读性不太好
f1(function(){
    f2(function(){
        f3(f4)
    })
});
